package com.whl.sm.common.exception;


import com.whl.sm.common.result.ResultCodeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

@Data
@ApiModel(value = "自定义全局异常类")
public class SMException extends RuntimeException{

        @ApiModelProperty(value = "异常状态码")
        private Integer code;

        /**
         * 通过状态码和错误消息创建异常对象
         * @param message
         * @param code
         */
        public SMException(String message, Integer code) {
            super(message);
            this.code = code;
        }

        /**
         * 接收枚举类型对象
         * @param resultCodeEnum
         */
        public SMException(ResultCodeEnum resultCodeEnum) {
            super(resultCodeEnum.getMessage());
            this.code = resultCodeEnum.getCode();
        }

        @Override
        public String toString() {
            return "SMException{" +
                    "code=" + code +
                    ", message=" + this.getMessage() +
                    '}';
        }
}
